草庐IT

c++ - Swig -includeall 除了...

全部标签

c++ - 未定义的 md5 引用

这个问题在这里已经有了答案:HowcanIuseopenssl/md5inC++tohashastring?(2个答案)关闭8年前。#includevoidmMD5(unsignedchar*packet,intsize){unsignedchar*res;MD5((unsignedchar*)&packet,size,(unsignedchar*)&res);for(inti=0;i我收到错误:对MD5的undefinedreference谁能帮帮我?

c++ - 如何修改按值传递的原始变量的内容?

有一个现有的API函数只允许插件(DLL)接收三个参数并执行一些操作:intProcessMe(intnCommand,unsignedintwParam,longlParam);现在,从主程序(exe),想传递两个变量给插件,并要求插件修改它们的内容,主程序将再次读取它们,以执行一些任务。我的问题是,根据上面的函数,我可以在不改变函数参数的情况下执行这个吗?例子:intProcessMe(intnCommand,unsignedintwParam,longlParam){//modifytheparameters//return0;}intmain(){BOOLbSave=TRUE;

c++ - 可以在 C++ 代码而非 C 代码上完成 'easily' 的编译器优化示例

这个问题讨论了在C中不容易实现的排序函数的优化:Performanceofqsortvsstd::sort?与C++相比,是否有更多编译器优化的示例,这些优化在C中是不可能或至少难以实现的? 最佳答案 正如@sehe在评论中提到的。它最重要的是抽象。换句话说,如果语言允许编码器更好地表达意图,那么它可以发出以更优化的方式实现该意图的代码。一个简单的例子是std::fill。当然,对于基本类型,您可以使用memset,但是,假设它是一个32位unsignedlong数组。std::fill知道数组大小是32位的倍数。根据编译器的不同,

c++ - 将 ip 解析为主机名

我正在尝试从IP地址解析主机名。我试过使用gethostbyaddr()和getnameinfo()但在很多情况下主机名根本没有解析。有没有更好的方法将IP地址转换为有效的主机名?char*ip=argv[1];//usinggethostbyaddr()hostent*phe=gethostbyaddr(ip,strlen(ip),AF_INET);if(phe){couth_name 最佳答案 Ihavetriedusinggethostbyaddr()andgetnameinfo()[...].Isthereabetterwa

c++ - 使用 '?' 而不是 L' 有什么缺点吗?用wchar_t?

使用'?'风格的字rune字来比较或分配已知类型为wchar_t的值而不是使用有什么缺点吗code>L'?'风格的文字? 最佳答案 他们有错误的数据类型和编码,所以这是个坏主意。编译器将使用标准整数转换(例如符号扩展)静默地加宽字rune字(对于字符串,您会得到类型不匹配的编译错误)。但该值可能不匹配。例如,字符0x80到0xff通常映射到不同的Unicode代码点,具体映射因编译器的代码页而异。显然,Unicode不可能使用身份转换映射所有不同的代码页。如果仅仅扩大就足够了,就不需要像mbtowcs这样的函数了。WRT关于'\xA

c++ - 快速时间函数 C/C++

我目前正在使用ctime库中的时间。有没有更快的选择?time_tstart_time,elapsed_time;for(inti=0;itime(NULL)还不够快。 最佳答案 您似乎只想测量耗时(而不关心绝对时间)。测量耗时的最快方法之一(如果您使用的是x86)是阅读rdtsccounter.在mvsc++中,这可以通过以下方式实现:#includeunsigned__int64rdtsc(void){return__rdtsc();} 关于c++-快速时间函数C/C++,我们在St

c++ - C 函数参数中的数组语法与指针语法

我了解数组如何退化为指针。我明白,对于编译器来说,这是:voidfoo(int*arg1);100%等同于此:voidfoo(intarg1[]);是否应该优先选择一种风格?我想保持一致,但我很难证明这两个决定是正确的。虽然intmain(intargc,char*argv[])和intmain(intargc,char**argv)是一样的,但是前者好像更常见(如果我错了请纠正我)。 最佳答案 我会建议反对使用[]函数参数的语法。支持使用[]的一个论据是它以一种self记录的方式暗示指针应该指向不止一件事。例如:voidswap(

c++ - 为什么构建没有预编译头文件的 DLL 在使用时会出现奇怪的错误?

总结:今天我发现在构建一个没有预编译头文件的DLL时,当您尝试使用它时会出现一个奇怪的错误。当禁用预编译header时,构建DLL会很顺利。但是,一旦附加了DLL(编译时或运行时),它就会导致错误“参数无效”。两种情况的实际错误代码都不同。附加编译时时会弹出错误代码为0xc000000d的对话框,调用LoadLibrary()时会返回NULL指针,而GetLastError()会返回0x57.编辑:我发现当增量链接被禁用时问题就消失了。在运行附加到DLL编译时的客户端时,我以某种方式错过了VisualStudio显示的以下错误:'TestClient.exe':Loaded'D:\Pr

c++ - glColorMask 是否影响 glClear

假设在下面的代码之前绘制了一些东西,下面的代码应该做什么?glColorMask(GL_FALSE,GL_FALSE,GL_FALSE,GL_TRUE);glClearColor(0.0,0.0,0.0,1.0);glClear(GL_COLOR_BUFFER_BIT);glColorMask(GL_TRUE,GL_TRUE,GL_TRUE,GL_TRUE);这段代码应该只将alpha设置为1还是会清除颜色缓冲区?或者换句话说,glColorMask会影响glClear的作用还是它只适用于正常的绘制操作?我特别询问关于OpenGLES2.0的问题,因此任何对规范的引用都将不胜感激。

c++ - 集合类型的可变长度参数列表

好吧,我很确定之前已经以某种方式讨论过这个问题,但我显然太笨了,找不到它。首先:我不是在寻找va_list和其他宏。我正在寻找的是类似于主函数​​参数的东西。众所周知,默认原型(prototype)是:intmain(intargc,char*argv[]);现在,我想要我的程序有类似的东西,但不知Prop体怎么做。假设我们有这个函数:voidFunction(intargc,unsignedshort*args[]){for(inti=0;i我想要这样的函数调用:Function(5,1,2,3,4,5);那行得通吗?因为我不想要va_list的“困惑”,也不想创建:voidAnot